package JZOffer;

/**
 * 剑指 Offer 04. 二维数组中的查找
 * 在一个 n * m 的二维数组中，每一行都按照从左到右递增的顺序排序，
 * 每一列都按照从上到下递增的顺序排序。
 * 请完成一个高效的函数，
 * 输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。
 * **/

class Solution04 {
    public boolean findNumberIn2DArray(int[][] matrix, int target) {
        //如果matrix为空，或者 并不为空，但是里边没有元素
        if (matrix == null || matrix.length == 0 || matrix[0].length == 0){
            return false;
        }
        int rows = matrix.length;
        int columns = matrix[0].length - 1;

        int row = 0;
        int column = columns;
        while (row < rows && column >= 0){
            if (target == matrix[row][column]){
                return true;
            }else if (target > matrix[row][column]){
                row++;
            }else {
                column--;
            }
        }
        return false;
    }
}